home *** CD-ROM | disk | FTP | other *** search
- /*
- File to disk moving utility for the Atari ST
- */
-
- #include <stdio.h>
-
- char buffer[4610];
- main(argc,argv)
- int argc;
- char *argv[];
- {
-
- int i,handle,result=1,drive=0,sector=1,track=0,side=0,done,count=0;
- char dummy[255];
- long filler=0,buflen=4608;
- FILE *infile;
-
- printf("file2dsk.ttp -- (c)1991 Ken Corey (aka kenc@vaxb.acs.unt.edu)\n");
- printf("Intended for use with the demonstration distribution of \n MINIX-ST (c)1990 Prentice Hall\n");
- if(argc<2)
- {
- printf("\nThis program will transfer a file onto a disk bit for bit.\n");
- printf("It's meant to be used with the Minix demo software, though it will\n");
- printf("use any file. Use with other files will no doubt lead to\n");
- printf("interesting deadly, and useless (8^)) results.\n");
- printf("\nUsage: file2dsk demo_dsk.st [B:]\n");
- printf("\nwill copy the file demo_dsk.st onto a floppy, bit for bit, sector for sector.\n");
- printf("2 Caveats:\n\n");
- printf(" 1)This software will completely erase any extant info on the floppy.\n");
- printf("\n 2)The disk must previously be formatted out to single sided,\n");
- printf(" using the standard st desktop. No other configuration has been tested!\n");
- printf("\n\n BTW, have a great day!\n");
-
- printf("Hint: hit a key to exit to desktop....");
- gets(dummy);
- exit(1);
- }
-
- if(argc==3)
- drive=1;
- printf("\nOkay, I'm gonna use '%s' as the filename.\n",argv[1]);
- printf("Please insert a freshly formatted, SINGLE sided floppy in drive ");
- if(drive==0)
- printf("A:\n");
- else
- printf("B:\n");
- printf("and hit return...\n\n");
- printf("THIS FLOPPY WILL BE COMPLETELY ERASED!");
-
- gets(dummy);
-
- result=gemdos(0x3D,argv[1],0);
- if (result<0)
- {
- printf("I couldn't open the file '%s'!\n",argv[1]);
- exit(result);
- }
-
- handle=result;
-
- while((track<=80)&&(count<0x2D0)&&(done!=1))
- {
- for(i=0;i<4610;buffer[i++]=0xE5) ;
-
- result=gemdos(0x3F,handle,buflen,&buffer[0]);
- if (result<0)
- {
- printf("Error in reading '%s'!\n",argv[1]);
- exit(result);
- }
-
- if(result==0)
- done=1;
-
- printf("%d--%d t--s\n",track,sector);
-
- result=xbios(0x9,&buffer[0],filler,drive,sector,track,side,9);
- if(result<0)
- {
- printf("Error in writing to drive A:!\n");
- exit(result);
- }
-
- track += 1;
- count += 9;
- }
-
- printf("All done!\n");
-
- }
-
-